home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Games / ms-0.07 / INSTALL < prev    next >
Text File  |  1995-06-26  |  8KB  |  220 lines

  1.  
  2.  
  3.                  MandelSpawn Installation Guide
  4.  
  5.  
  6. This file contains step-by-step instructions for compiling and
  7. installing MandelSpawn.  
  8.  
  9.  
  10. COMPILING THE LIBRARY
  11.  
  12. The library "libms.a" is required by all the programs, so it
  13. must be compiled first.  Go to the lib/ subdirectory, read the
  14. Makefile, edit it if necessary, and run make.
  15.  
  16.  
  17. COMPILING MSLAVED
  18.  
  19. The next step is to build the computation server "mslaved" and
  20. the associated control program "mslavedc".
  21.  
  22. Go to the mslaved/ subdirectory, read the Makefile and edit it if
  23. necessary.  
  24.  
  25. Silicon Graphics IRIX users may need to insert the line 
  26. "#undef TIOCNOTTY" before the "#ifdef TIOCNOTTY" line in mslavedc.c.
  27.  
  28. If you are using a Vax, 680x0 or i386, consider using GCC to take
  29. advantage of the fixed-point arithmetic support.  Using GCC together
  30. with an assembler other than GAS may cause problems on some machines;
  31. in this case you may need to edit the few lines of inline assembly in
  32. ms_real.c.  Note that truly ancient versions of GCC (pre-1.36) won't
  33. work.
  34.  
  35. Run make.
  36.  
  37.  
  38. COMPILING BMS
  39.  
  40. Next, build the batch-mode client program "bms".  Go to the bms/
  41. subdirectory, read the Makefile, edit it if necessary, and run Make.
  42.  
  43.  
  44. COMPILING XMS
  45.  
  46. Next, build the X-based client program "xms".  If you don't have X,
  47. skip this step.
  48.  
  49. Xms itself should build and using the normal Imake procedure (e.g., by
  50. running xmkmf, make depend, and make).  You are strongly encouraged to
  51. use Imake, but if you can't for some reason, then just copy the file
  52. noImakefile to Makefile and edit it as necessary.
  53.  
  54. MandelSpawn requires X11R4 or newer and uses the Xlib, Xt, and Xaw
  55. libraries.  The noImakefile includes some additional instructions for
  56. building a stripped-down version if you don't have Xaw or if you have
  57. an older version of the X libraries.
  58.  
  59.     * Notes to Mach users:
  60.  
  61.     You may also need to include the option "-chunk_height 16" when
  62.     running MandelSpawn with iterations counts larger than 256 because of
  63.     limits on UDP message size.
  64.  
  65.     If you are running Mach/i386 you may have a broken floor() library
  66.     function, causing incorrect colour interpolation.  A workaround can be
  67.     enabled by defining the symbol BROKEN_FLOOR when compiling Mama.c.
  68.  
  69.     * Notes to Sony users:
  70.  
  71.     Sony's X11R4 server for the NWS-1510 with a 4-bit greyscale display
  72.     has a bug that causes it to crash when running MandelSpawn.  If you
  73.     have this problem, try giving MandelSpawn the workaround option
  74.     "-sony".
  75.  
  76.  
  77. TESTING BEFORE INSTALLING
  78.  
  79. When you have built the programs, it is a good idea to test them
  80. before installing them in a public place.  Here is how to test
  81. MandelSpawn by running the programs on a single host:
  82.  
  83.   1. Create a ".mslaves" file in your home directory, containing
  84.      a single line with the hostname of your local host (or the
  85.      single word "localhost").
  86.  
  87.   2. Start the computation server by going to the mslaved/ subdirectory
  88.      and saying "mslavedc ./mslaved".  Nothing is printed on the
  89.      terminal, but "ps -x" (BSD) or "ps -ef" (System V) should
  90.      show the mslaved daemon process running.
  91.  
  92.   3. Go to the bms/ directory and say "bms -ascii | more".  If all is
  93.      well, you should get a few hundred lines of output beginning with
  94.  
  95.     P2
  96.     64 24
  97.     249
  98.     1 1 1 1 1 1 1 1
  99.     1 1 1 2 2 3 3 3
  100.     3 3 3 3 3 3 3 3
  101.     3 4 4 4 4 4 5 6
  102.     6 6 7 8 22 249 249 249
  103.  
  104.      If bms doesn't get a response from mslaved, it will keep
  105.      retrying indefinitely.  If that happens, just abort with
  106.      control-C and make sure you really have mslaved running.
  107.  
  108.   4. If you are running X, go to the xms/ directory and say "xms".  A
  109.      window should appear and slowly fill by pieces of the Mandelbrot
  110.      set.  Like bms, xms will wait indefinitely for mslaved to
  111.      respond, so if mslaved isn't running the window will stay blank.
  112.      You can quit xms by pressing "q" or by using the pop-up menu
  113.      activated by mouse button 3.
  114.  
  115.   5. When you are finished, kill the mslaved process by going to the
  116.      mslaved/ directory and saying "mslavedc -k".
  117.  
  118.  
  119. INSTALLING THE PROGRAMS
  120.  
  121. The recommended installation procedure is to install the program
  122. binaries and control files in the appropriate system-wide, public
  123. directories and to arrange for mslaved to be started automatically
  124. from inetd.  If you can't do this for some reason (e.g., if you don't
  125. have root privileges or if you believe mslaved to be a security risk),
  126. see the next section for instructions how to install MandelSpawn for
  127. personal use only.
  128.  
  129. The following steps must be done as root on each machine.  On machines
  130. that are to work only as computation servers, there is no need to
  131. install bms, xms, or /usr/local/etc/mslaves.
  132.  
  133.  1. Install the following programs in some public directory:
  134.  
  135.      Program            Recommended location
  136.  
  137.      bms/bms            /usr/local/bin
  138.      xms/xms            /usr/bin/X11
  139.      mslaved/mslaved        /usr/local/etc
  140.      mslaved/mslavedc        /usr/local/etc
  141.      mslaved/enslave        /usr/local/bin
  142.  
  143.  2. Install the following man pages in the appropriate directories:
  144.  
  145.      xms/xms.man
  146.      bms/bms.1
  147.      mslaved/mslaved.8
  148.      mslaved/mslavedc.8
  149.      mslaved/enslave.1
  150.  
  151.  3. Create a file "/usr/local/etc/mslaves" containing the hostnames of
  152.     all the machines running computation servers (possibly including
  153.     the local host), one per line.  The file mslaved/dot-mslaves is a
  154.     sample file containing made-up hostnames.  If you wish to install
  155.     this file in a location other than /usr/local/etc, you must also
  156.     change the definition of PUBLIC_SLAVEFILE in lib/work.c.
  157.  
  158.     If you created a .mslaves file in your home directory during the
  159.     testing phase, remove it unless you want it to override the
  160.     information in /usr/local/etc/mslaves.
  161.  
  162.  4. Add a line like the following to /etc/services (if you are running
  163.     NIS (nee Yellow Pages), you may need to do this on the central NIS/YP
  164.     server):
  165.  
  166.      mandelspawn    9359/udp    mandelbrot    # network mandelbrot
  167.  
  168.   5. Add a line like the following to /etc/inetd.conf:
  169.  
  170.      mandelspawn dgram udp    wait    nobody  /usr/local/etc/mslaved mslaved
  171.  
  172.     (The above instructions apply to 4.3BSD and should also work as
  173.     such with SunOS 4.0 and up.  Some older systems, such as SunOS
  174.     versions older than 4.0, may need different treatment in step 3
  175.     and/or 4.  In particular, they may use a file /etc/servers instead
  176.     of /etc/inetd.conf, with a slightly different syntax.)
  177.  
  178.     (When installing under IRIX, inetd may get confused if the
  179.     username "nobody" (UID -2) is used in /etc/inetd.conf, causing it
  180.     to log numerous error messages saying "can't set gid 65534".  If
  181.     you have similar problems, use another username instead).
  182.  
  183.     (Ultrix seems to have no username field at all in inetd.conf.  If
  184.     this is the case for your system, then just leave out the
  185.     "nobody").
  186.  
  187.  6. Send a hangup signal to inetd using "kill -1" to make it read the
  188.     changed /etc/inetd.conf.
  189.  
  190.  
  191. INSTALLING FOR PERSONAL USE
  192.  
  193. As an alternative to the above site-wide installation procedure, you
  194. can install MandelSpawn for personal use only.
  195.  
  196. In this case, you will need to start your own computation servers
  197. manually before each MandelSpawn session.  The shell script 
  198. "mslaved/enslave" can be used to do this semi-automatically for
  199. the hosts listed in the file ".enslave" in your home directory.
  200. A sample ".enslave" file is supplied in "mslaved/dot-enslave".
  201. For more info, se the enslave(1) man page.
  202.  
  203. You don't need to kill the servers explicitly after the session,
  204. because they time out and die when they have been idle for 15 minutes.
  205.  
  206. If "rsh" on your system means "restricted shell" rather than "remote
  207. shell", you need to edit the "RSH=" line near the beginning of the
  208. "enslave" script.
  209.  
  210.  
  211. REPORTING BUGS
  212.  
  213. Please report any bugs you find, no matter how insignificant, to
  214. gson@niksula.hut.fi.  
  215.  
  216. Please remember to state your computer model, operating system and
  217. version, X toolkit version, and MandelSpawn version (from running 
  218. "xms -version" or "bms -version").  Also remember to include the exact
  219. error message you are getting.
  220.